1. Field of the Invention
The present invention relates to a method, system, and program for storing data in a storage medium.
2. Description of the Related Art
Three prevalent tape storage technologies include a helical scan tape where data is stored along vertical or diagonal tracks on the tape, parallel tape where data is stored on tracks in parallel during one scan on the tape, and serpentine tape where data is written in a forward and then reverse direction in a serpentine pattern across bands or tracks on the magnetic tape medium. In serpentine tape drives, the bands extending the length of the tape may be divided into segments, such as a housekeeping segment, calibration segment, user data segment, etc., where data is written in a serpentine manner within the longitudinal bands of a segment. A serpentine tape drive first read/writes a set of tracks in a forward direction within a segment of a band, referred to as a wrap, then read/writes the next set of tracks in a reverse direction, and so on, leading to a serpentine pattern for the data layout. In serpentine tape technology, a wrap comprises a set of tracks written for some length of one of the bands that extend the entire length of the tape and a wrap section comprises a wrap for the length of one segment.
“Synchronized data” is defined as data or other information which is subject to a “synchronizing event” or similar command requiring the tape drive to not return “Command Complete” to a write type of command, or an indication that the command has been or will be successfully executed, until it has actually committed the data to media, specifically, the magnetic tape. As the result, if power is lost, the data can be recovered from the tape, whereas it may not be recoverable from a volatile DRAM storage of the tape drive buffer.
One example of a synchronizing event is a Write Filemark command with the Immediate bit set to “0”. This means that the drive is not to respond immediately, but instead is to respond when the command has completed, meaning that any data sent as part of the command is written out to tape. A specialized case of a Write Filemark command is where the number of Filemarks field is also set to “0”, meaning that the Write Filemark command has no data of its own, and all data which precedes the command must be written to tape before a command complete is sent. Hence, this command is often referred to as a “Synchronize” command, as is known to those of skill in the art.
Another example of a synchronizing event is a host selectable write mode known to those of skill in the art as “non-buffered writes”, where an implicit synchronize must be performed after each record is written from the host. “Command Complete” is not returned for any write command until the data is successfully written on media.
Herein, writing any data record, group of records, or other mark, is defined as a “transaction”, and writing such data record, etc., as the result of a synchronizing event is defined as a “synchronized transaction”.
A difficulty with respect to magnetic tape is that the data is recorded sequentially without long gaps between data sets, whereas synchronized transactions are stored in separate bursts for each synchronizing event, with a noticeable time period before writing the next transaction. This requires that the tape drive “backhitch” after writing the synchronized transaction in order to write the next transaction closely following the preceding transaction. Tape is written or read while it is moved longitudinally at a constant speed. Hence, a backhitch requires that the tape be stopped, reversed to beyond the end of the previous transaction, stopped again, and accelerated up to speed in the original direction before the next transaction can be written to the tape. As is understood by those of skill in the art, the backhitch process consumes a considerable amount of time, and, if a large number of small synchronized transactions are to be stored, the throughput of the tape drive is reduced dramatically. As an example, backhitch times can vary from about half a second to over three seconds.